package com.qf.dao;

import com.qf.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/*
 *@Description:
 *@author:刘哥
 *@Date:15:07 2022/7/6
 * projectName:mybatis_demo
 * author:liuXin
 * time:2022/7/6 17:13
 * description:
 * MyBatis参数形式
 * 1单个参数：就以简单类型传入即可在配置映射文件中parameterType就以简单类型别名处理
 *   在SQL语句中引入简单类型参数#{任意类型}
 * 2传多个参数
 *   2.1传多个简单类型不提倡
 *      我们需要通过@Param注解给每个参数取名（取名任意名称都行）
 *      SQL传入参数#{param注解的值}
 *   2.2传pojo实体类
 *      在配置文件mapper里面parameterType的值pojo的权限定名或别名
 *      在SQL语句中#{pojo的属性} '${pojo的属性}'
 *   2.3传Map集合
 *      在配置文件mapper里面parameterType的值map
 *      在SQL语句中#{pojo的属性} '${pojo的属性}'
 */
public interface UserDao {
//    添加用户
    int addUser(User user);
//    删除用户
    void deleteUser(int id);
//    修改用户
    void updateUser(User user);
//    根据id查用户
    User selectById(int id);
//    模糊查询
    List<User> selectName(String name);
//    通过密码和名字查用户
    User select(@Param("name") String name,@Param("pwd") String password);

    void update(Map map);

}
